/**
* @version 1.0
* @package FACTURAPYMES.
* @author Jorge Washington Mueses Cevallos.
* @copyright Copyright (C) 2010 por Jorge Mueses. Todos los derechos reservados.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL.
* FACTURAPYMES! es un software de libre distribución, que puede ser
* copiado y distribuido bajo los términos de la Licencia Pública
* General GNU, de acuerdo con la publicada por la Free Software
* Foundation, versión 2 de la licencia o cualquier versión posterior.
*/

package jm.seg;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
import jm.seg.clas.Rol;
import jm.seg.clas.Auditoria;
import java.sql.ResultSet;

/**
 *
 * @author Jorge
 */
public class frmPrivilegiosGuardar extends HttpServlet {
    private String _ip = null;
    private int _puerto = 5432;
    private String _db = null;
    
    public void init(ServletConfig config) throws ServletException
    {
        this._ip = config.getServletContext().getInitParameter("_IP");
        this._puerto = Integer.parseInt(config.getServletContext().getInitParameter("_PUERTO"));
        this._db = config.getServletContext().getInitParameter("_DB");
    }
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        HttpSession sesion = request.getSession(true);
        String usuario = (String)sesion.getAttribute("usuario");
        String clave = (String)sesion.getAttribute("clave");
        
        response.setContentType("text/html;charset=UTF-8");
        response.setHeader("Pragma", "no-cache"); 
        response.setHeader("Expires", "Mon, 01 Jan 2001 00:00:01 GMT"); 
        response.setHeader("Cache-Control", "no-store"); 
        response.setHeader("Cache-Control", "must-revalidate"); 
        response.setHeader("Cache-Control", "no-cache");
        PrintWriter out = response.getWriter();
        
        Rol objRol = new Rol(this._ip, this._puerto, this._db, usuario, clave);
        try {
            String accion = request.getParameter("ac");
            String id_rol = request.getParameter("id_rol");
            String id_pagina = "";
            ResultSet rsRol = objRol.getRol(id_rol);
            String rol = "";
            if(rsRol.next()){
                rol = (rsRol.getString("rol")!=null) ? rsRol.getString("rol") : "";
                rsRol.close();
            }
            int i=0;
            if(accion.compareTo("1")==0){
                id_pagina = request.getParameter("id_p"+i);
                while(id_pagina!=null){
                    objRol.concederPriv(id_rol, id_pagina);
                    i++;
                    id_pagina = request.getParameter("id_p"+i);
                }
                Auditoria auditoria = new Auditoria(this._ip, this._puerto, this._db, usuario, clave);
                auditoria.setRegistro(request, "PRIVILEGIOS CONCEDIDOS PARA EL ROL: "+rol);
                auditoria.cerrar();
            }else if(accion.compareTo("0")==0){
                    id_pagina = request.getParameter("id_p_as"+i);
                    while(id_pagina!=null){
                        objRol.revocarPriv(id_rol, id_pagina);
                        i++;
                        id_pagina = request.getParameter("id_p_as"+i);
                    }
                    Auditoria auditoria = new Auditoria(this._ip, this._puerto, this._db, usuario, clave);
                    auditoria.setRegistro(request, "PRIVILEGIOS REVOCADOS PARA EL ROL: "+rol);
                    auditoria.cerrar();
            }
            
            out.print("fun»seg_rolPrivilegios()");
        }catch(Exception e){
            e.printStackTrace();
        } finally { 
            objRol.cerrar();
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
